package com.example.mall.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.math.BigDecimal;
import java.util.Date;

import java.io.Serializable;

/**
 * <p>
 * 物流费用规则表
 * </p>
 *
 * @author whale
 * @since 2025-05-16
 */
@TableName("tb_logistics_fee_rules")
public class LogisticsFeeRules extends Model<LogisticsFeeRules> {

    private static final long serialVersionUID = 1L;

    /**
     * 规则唯一标识
     */
    @TableId("rule_id")
    private Long ruleId;
    /**
     * 物流公司ID（关联物流公司表）
     */
    @TableField("company_id")
    private Long companyId;
    /**
     * 目的地（城市、省份等）
     */
    private String destination;
    /**
     * 最小重量（单位：千克）
     */
    @TableField("weight_min")
    private BigDecimal weightMin;
    /**
     * 最大重量（单位：千克）
     */
    @TableField("weight_max")
    private BigDecimal weightMax;
    /**
     * 最小体积（单位：立方米）
     */
    @TableField("volume_min")
    private BigDecimal volumeMin;
    /**
     * 最大体积（单位：立方米）
     */
    @TableField("volume_max")
    private BigDecimal volumeMax;
    /**
     * 运费
     */
    private BigDecimal fee;
    /**
     * 是否启用（0：禁用，1：启用）
     */
    @TableField("is_active")
    private Integer isActive;
    /**
     * 创建时间
     */
    @TableField("create_date")
    private Date createDate;
    /**
     * 更新时间
     */
    @TableField("update_date")
    private Date updateDate;


    public Long getRuleId() {
        return ruleId;
    }

    public void setRuleId(Long ruleId) {
        this.ruleId = ruleId;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination;
    }

    public BigDecimal getWeightMin() {
        return weightMin;
    }

    public void setWeightMin(BigDecimal weightMin) {
        this.weightMin = weightMin;
    }

    public BigDecimal getWeightMax() {
        return weightMax;
    }

    public void setWeightMax(BigDecimal weightMax) {
        this.weightMax = weightMax;
    }

    public BigDecimal getVolumeMin() {
        return volumeMin;
    }

    public void setVolumeMin(BigDecimal volumeMin) {
        this.volumeMin = volumeMin;
    }

    public BigDecimal getVolumeMax() {
        return volumeMax;
    }

    public void setVolumeMax(BigDecimal volumeMax) {
        this.volumeMax = volumeMax;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public Integer getIsActive() {
        return isActive;
    }

    public void setIsActive(Integer isActive) {
        this.isActive = isActive;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }


    @Override
    public String toString() {
        return "LogisticsFeeRules{" +
        ", ruleId=" + ruleId +
        ", companyId=" + companyId +
        ", destination=" + destination +
        ", weightMin=" + weightMin +
        ", weightMax=" + weightMax +
        ", volumeMin=" + volumeMin +
        ", volumeMax=" + volumeMax +
        ", fee=" + fee +
        ", isActive=" + isActive +
        ", createDate=" + createDate +
        ", updateDate=" + updateDate +
        "}";
    }
}
